package leetcode.code0621;

public class Solution extends Solution621 {

	@Override
	public int leastInterval(char[] tasks, int n) {
		int len = tasks.length;
		if (n == 0)
			return len;
		int[] record = new int[26];
		int max = 0;
		for (char c : tasks) {
			int num = ++record[c - 'A'];
			max = Math.max(max, num);
		}
		int basket = (max - 1) * (n + 1);// 放不满的情况下，即有空余的时间。最多的任务决定长度
		for (int num : record) {
			basket += num == max ? 1 : 0;
		}
		return Math.max(basket, len);// 放满的情况下，不会有空余周期，有多少任务用多少时间。所有空格都被插满
	}

	public static void main(String[] args) {
		Solution so = new Solution();
		so.debug2();
		so.debug1();

	}

}
